home *** CD-ROM | disk | FTP | other *** search
- /*
- * @(#)DoubleBufferPanel.java 1.2 97/01/14 Jeff Dinkins
- *
- * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
- *
- */
-
- package actual;
-
- import java.awt.*;
- import java.applet.*;
-
- public class DoubleBufferPanel extends Panel {
-
- Image offscreen;
-
- /**
- * null out the offscreen buffer as part of invalidation
- */
- public void invalidate() {
- super.invalidate();
- offscreen = null;
- }
-
- /**
- * override update to *not* erase the background before painting
- */
- public void update(Graphics g) {
- paint(g);
- }
-
- /**
- * paint children into an offscreen buffer, then blast entire image
- * at once.
- */
- public void paint(Graphics g) {
- if(offscreen == null) {
- offscreen = createImage(getSize().width, getSize().height);
- }
-
- Graphics og = offscreen.getGraphics();
- og.setClip(0,0,getSize().width, getSize().height);
- super.paint(og);
- g.drawImage(offscreen, 0, 0, null);
- og.dispose();
- }
-
- }
-
-